#pragma once

#include <cstdint>

namespace solar
{
    enum class ModelType : std::uint8_t;
    class Vec3;

    /// @brief 计算对应模型的“总能量”
    /// @details 简化模型：定日镜上的总能量
    /// @details 卷积模型：定日镜上单位面积的总能量
    auto peakFluxParam(const ModelType& model_type, const Vec3& focus_center, const Vec3& helio_pos,
                       const Vec3& helio_normal, double helio_area, double DNI,
                       double reflectivity) -> double;
} // namespace solar
